
%% bare_jrnl.tex
%% V1.3
%% 2007/01/11
%% by Michael Shell
%% see http://www.michaelshell.org/
%% for current contact information.
%%
%% This is a skeleton file demonstrating the use of IEEEtran.cls
%% (requires IEEEtran.cls version 1.7 or later) with an IEEE journal paper.
%%
%% Support sites:
%% http://www.michaelshell.org/tex/ieeetran/
%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/
%% and
%% http://www.ieee.org/



% *** Authors should verify (and, if needed, correct) their LaTeX system  ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do  ***
% *** not appear when using other class files.                            ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/


%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE! 
%% User assumes all risk.
%% In no event shall IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including  **
%% ** renaming them and changing author support contact information. **
%%
%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex,
%%                    bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex
%%*************************************************************************

% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[journal]{IEEEtran}
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}





% Some very useful LaTeX packages include:
% (uncomment the ones you want to load)


% *** MISC UTILITY PACKAGES ***
%
%\usepackage{ifpdf}
% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional
% compilation based on whether the output is pdf or dvi.
% usage:
% \ifpdf
%   % pdf code
% \else
%   % dvi code
% \fi
% The latest version of ifpdf.sty can be obtained from:
% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/
% Also, note that IEEEtran.cls V1.7 and later provides a builtin
% \ifCLASSINFOpdf conditional that works the same way.
% When switching from latex to pdflatex and vice-versa, the compiler may
% have to be run twice to clear warning/error messages.






% *** CITATION PACKAGES ***
%
%\usepackage{cite}
% cite.sty was written by Donald Arseneau
% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package
% \cite{} output to follow that of IEEE. Loading the cite package will
% result in citation numbers being automatically sorted and properly
% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using
% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's
% \cite will automatically add leading space, if needed. Use cite.sty's
% noadjust option (cite.sty V3.8 and later) if you want to turn this off.
% cite.sty is already installed on most LaTeX systems. Be sure and use
% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does
% not currently provide for hyperlinked citations.
% The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/
% The documentation is contained in the cite.sty file itself.
\usepackage[backend=biber]{biblatex}
\bibliography{interim_report}

% *** GRAPHICS RELATED PACKAGES ***
%
\ifCLASSINFOpdf
   \usepackage[pdftex]{graphicx}
  % declare the path(s) where your graphic files are
  % \graphicspath{{../pdf/}{../jpeg/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
  % \DeclareGraphicsExtensions{.pdf,.jpeg,.png}
\else
  % or other class option (dvipsone, dvipdf, if not using dvips). graphicx
  % will default to the driver specified in the system graphics.cfg if no
  % driver is specified.
  % \usepackage[dvips]{graphicx}
  % declare the path(s) where your graphic files are
  % \graphicspath{{../eps/}}
  % and their extensions so you won't have to specify these with
  % every instance of \includegraphics
  % \DeclareGraphicsExtensions{.eps}
\fi
% graphicx was written by David Carlisle and Sebastian Rahtz. It is
% required if you want graphics, photos, etc. graphicx.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at: 
% http://www.ctan.org/tex-archive/macros/latex/required/graphics/
% Another good source of documentation is "Using Imported Graphics in
% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or
% epslatex.pdf at: http://www.ctan.org/tex-archive/info/
%
% latex, and pdflatex in dvi mode, support graphics in encapsulated
% postscript (.eps) format. pdflatex in pdf mode supports graphics
% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure
% that all non-photo figures use a vector format (.eps, .pdf, .mps) and
% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats
% which can result in "jaggedy"/blurry rendering of lines and letters as
% well as large increases in file sizes.
%
% You can find documentation about the pdfTeX application at:
% http://www.tug.org/applications/pdftex





% *** MATH PACKAGES ***
%
%\usepackage[cmex10]{amsmath}
% A popular package from the American Mathematical Society that provides
% many useful and powerful commands for dealing with mathematics. If using
% it, be sure to load this package with the cmex10 option to ensure that
% only type 1 fonts will utilized at all point sizes. Without this option,
% it is possible that some math symbols, particularly those within
% footnotes, will be rendered in bitmap form which will result in a
% document that can not be IEEE Xplore compliant!
%
% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000
% thus preventing page breaks from occurring within multiline equations. Use:
%\interdisplaylinepenalty=2500
% after loading amsmath to restore such page breaks as IEEEtran.cls normally
% does. amsmath.sty is already installed on most LaTeX systems. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/





% *** SPECIALIZED LIST PACKAGES ***
%
%\usepackage{algorithmic}
% algorithmic.sty was written by Peter Williams and Rogerio Brito.
% This package provides an algorithmic environment fo describing algorithms.
% You can use the algorithmic environment in-text or within a figure
% environment to provide for a floating algorithm. Do NOT use the algorithm
% floating environment provided by algorithm.sty (by the same authors) or
% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated
% algorithm float types and packages that provide these will not provide
% correct IEEE style captions. The latest version and documentation of
% algorithmic.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/
% There is also a support site at:
% http://algorithms.berlios.de/index.html
% Also of interest may be the (relatively newer and more customizable)
% algorithmicx.sty package by Szasz Janos:
% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/




% *** ALIGNMENT PACKAGES ***
%
%\usepackage{array}
% Frank Mittelbach's and David Carlisle's array.sty patches and improves
% the standard LaTeX2e array and tabular environments to provide better
% appearance and additional user controls. As the default LaTeX2e table
% generation code is lacking to the point of almost being broken with
% respect to the quality of the end results, all users are strongly
% advised to use an enhanced (at the very least that provided by array.sty)
% set of table tools. array.sty is already installed on most systems. The
% latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/required/tools/


%\usepackage{mdwmath}
%\usepackage{mdwtab}
% Also highly recommended is Mark Wooding's extremely powerful MDW tools,
% especially mdwmath.sty and mdwtab.sty which are used to format equations
% and tables, respectively. The MDWtools set is already installed on most
% LaTeX systems. The lastest version and documentation is available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/


% IEEEtran contains the IEEEeqnarray family of commands that can be used to
% generate multiline equations as well as matrices, tables, etc., of high
% quality.


%\usepackage{eqparbox}
% Also of notable interest is Scott Pakin's eqparbox package for creating
% (automatically sized) equal width boxes - aka "natural width parboxes".
% Available at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/





% *** SUBFIGURE PACKAGES ***
%\usepackage[tight,footnotesize]{subfigure}
% subfigure.sty was written by Steven Douglas Cochran. This package makes it
% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE
% work, it is a good idea to load it with the tight package option to reduce
% the amount of white space around the subfigures. subfigure.sty is already
% installed on most LaTeX systems. The latest version and documentation can
% be obtained at:
% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/
% subfigure.sty has been superceeded by subfig.sty.



%\usepackage[caption=false]{caption}
%\usepackage[font=footnotesize]{subfig}
% subfig.sty, also written by Steven Douglas Cochran, is the modern
% replacement for subfigure.sty. However, subfig.sty requires and
% automatically loads Axel Sommerfeldt's caption.sty which will override
% IEEEtran.cls handling of captions and this will result in nonIEEE style
% figure/table captions. To prevent this problem, be sure and preload
% caption.sty with its "caption=false" package option. This is will preserve
% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later 
% (recommended due to many improvements over 1.2) of subfig.sty supports
% the caption=false option directly:
%\usepackage[caption=false,font=footnotesize]{subfig}
%
% The latest version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/
% The latest version and documentation of caption.sty can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/




% *** FLOAT PACKAGES ***
%
%\usepackage{fixltx2e}
% fixltx2e, the successor to the earlier fix2col.sty, was written by
% Frank Mittelbach and David Carlisle. This package corrects a few problems
% in the LaTeX2e kernel, the most notable of which is that in current
% LaTeX2e releases, the ordering of single and double column floats is not
% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a
% single column figure to be placed prior to an earlier double column
% figure. The latest version and documentation can be found at:
% http://www.ctan.org/tex-archive/macros/latex/base/



%\usepackage{stfloats}
% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e
% the ability to do double column floats at the bottom of the page as well
% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in
% LaTeX2e). It also provides a command:
%\fnbelowfloat
% to enable the placement of footnotes below bottom floats (the standard
% LaTeX2e kernel puts them above bottom floats). This is an invasive package
% which rewrites many portions of the LaTeX2e float routines. It may not work
% with other packages that modify the LaTeX2e float routines. The latest
% version and documentation can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/
% Documentation is contained in the stfloats.sty comments as well as in the
% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE
% does not allow \baselineskip to stretch. Authors submitting work to the
% IEEE should note that IEEE rarely uses double column equations and
% that authors should try to avoid such use. Do not be tempted to use the
% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does
% not format its papers in such ways.


%\ifCLASSOPTIONcaptionsoff
%  \usepackage[nomarkers]{endfloat}
% \let\MYoriglatexcaption\caption
% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}}
%\fi
% endfloat.sty was written by James Darrell McCauley and Jeff Goldberg.
% This package may be useful when used in conjunction with IEEEtran.cls'
% captionsoff option. Some IEEE journals/societies require that submissions
% have lists of figures/tables at the end of the paper and that
% figures/tables without any captions are placed on a page by themselves at
% the end of the document. If needed, the draftcls IEEEtran class option or
% \CLASSINPUTbaselinestretch interface can be used to increase the line
% spacing as well. Be sure and use the nomarkers option of endfloat to
% prevent endfloat from "marking" where the figures would have been placed
% in the text. The two hack lines of code above are a slight modification of
% that suggested by in the endfloat docs (section 8.3.1) to ensure that
% the full captions always appear in the list of figures/tables - even if
% the user used the short optional argument of \caption[]{}.
% IEEE papers do not typically make use of \caption[]'s optional argument,
% so this should not be an issue. A similar trick can be used to disable
% captions of packages such as subfig.sty that lack options to turn off
% the subcaptions:
% For subfig.sty:
% \let\MYorigsubfloat\subfloat
% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}}
% For subfigure.sty:
% \let\MYorigsubfigure\subfigure
% \renewcommand{\subfigure}[2][\relax]{\MYorigsubfigure[]{#2}}
% However, the above trick will not work if both optional arguments of
% the \subfloat/subfig command are used. Furthermore, there needs to be a
% description of each subfigure *somewhere* and endfloat does not add
% subfigure captions to its list of figures. Thus, the best approach is to
% avoid the use of subfigure captions (many IEEE journals avoid them anyway)
% and instead reference/explain all the subfigures within the main caption.
% The latest version of endfloat.sty and its documentation can obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/
%
% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used
% later in the document, say, to conditionally put the References on a 
% page by themselves.





% *** PDF, URL AND HYPERLINK PACKAGES ***
%
%\usepackage{url}
% url.sty was written by Donald Arseneau. It provides better support for
% handling and breaking URLs. url.sty is already installed on most LaTeX
% systems. The latest version can be obtained at:
% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/
% Read the url.sty source comments for usage information. Basically,
% \url{my_url_here}.





% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex).         ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )


% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}


\begin{document}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
\title{Research Project Interim Report:\\Interconnection Network Encryption Scheme}
%
%
% author names and IEEE memberships
% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break
% a structure at a ~ so this keeps an author's name from being broken across
% two lines.
% use \thanks{} to gain access to the first footnote area
% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks
% was not built to handle multiple paragraphs
%

\author{Robert~O'Brien, David~O'Donnell, and Tracy~Wolf\\
Department of Computer Science and Engineering\\
University of South Florida}% <-this % stops a space

% note the % following the last \IEEEmembership and also \thanks - 
% these prevent an unwanted space from occurring between the last author name
% and the end of the author line. i.e., if you had this:
% 
% \author{....lastname \thanks{...} \thanks{...} }
%                     ^------------^------------^----Do not want these spaces!
%
% a space would be appended to the last name and could cause every name on that
% line to be shifted left slightly. This is one of those "LaTeX things". For
% instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get
% "AB" then you have to do: "\textbf{A}\textbf{B}"
% \thanks is no different in this regard, so shield the last } of each \thanks
% that ends a line with a % and do not let a space in before the next \thanks.
% Spaces after \IEEEmembership other than the last one are OK (and needed) as
% you are supposed to have spaces between the names. For what it is worth,
% this is a minor point as most people would not even notice if the said evil
% space somehow managed to creep in.



% The paper headers
%\markboth{Journal of \LaTeX\ Class Files,~Vol.~6, No.~1, January~2007}%
%{Shell \MakeLowercase{\textit{et al.}}: Bare Demo of IEEEtran.cls for Journals}
% The only time the second header will appear is for the odd numbered pages
% after the title page when using the twoside option.
% 
% *** Note that you probably will NOT want to include the author's ***
% *** name in the headers of peer review papers.                   ***
% You can use \ifCLASSOPTIONpeerreview for conditional compilation here if
% you desire.




% If you want to put a publisher's ID mark on the page you can do it like
% this:
%\IEEEpubid{0000--0000/00\$00.00~\copyright~2007 IEEE}
% Remember, if you use this you must call \IEEEpubidadjcol in the second
% column for its text to clear the IEEEpubid mark.



% use for special paper notices
%\IEEEspecialpapernotice{(Invited Paper)}




% make the title area
\maketitle


\begin{abstract}
%\boldmath
As devices become smaller and the application of embedded systems becomes more diversified the need for enhanced encryption schemes become more and more a necessity to the industry. Our paper focuses on a theory that we propose that would allow hardware to offer a more enhanced level of encryption abilities to help insure the protection sensitive design schema or integral data protection. We will take a look at why our encryption scheme it terms of what it will offer to hardware design implementation that will insure protection will an added level of security. Further, we will offer a method of design that will offer a real world proof of concept to the feasibility of our encryption scheme and offer various test cases to provide a snapshot of the level of performance we have achieved through our research. Once we have proved our theories are feasible and real world applicable we will provide an evaluation that expands further with a look at the test cases and the results we have achieved through these test cases. Finally, we will take a look at these results and offer a sound conclusion of our findings as well as look at any shortfalls within our design that with further research may be refined to offer better performance that our proposed proof of concept.
\end{abstract}
% IEEEtran.cls defaults to using nonbold math in the Abstract.
% This preserves the distinction between vectors and scalars. However,
% if the journal you are submitting to favors bold math in the abstract,
% then you can use LaTeX's standard command \boldmath at the very start
% of the abstract to achieve this. Many IEEE journals frown on math
% in the abstract anyway.

% Note that keywords are not normally used for peerreview papers.
\begin{IEEEkeywords}
Encryption, Substitution cipher, Caesar, Vigen\`{e}re, Interconnection network
\end{IEEEkeywords}


% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
\IEEEpeerreviewmaketitle



%\section{Introduction}
% The very first letter is a 2 line initial drop letter followed
% by the rest of the first word in caps.
% 
% form to use if the first word consists of a single letter:
% \IEEEPARstart{A}{demo} file is ....
% 
% form to use if you need the single drop letter followed by
% normal text (unknown if ever used by IEEE):
% \IEEEPARstart{A}{}demo file is ....
% 
% Some journals put the first two words in caps:
% \IEEEPARstart{T}{his demo} file is ....
% 
% Here we have the typical use of a "T" for an initial drop letter
% and "HIS" in caps to complete the first word.
%\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file''
%for IEEE journal papers produced under \LaTeX\ using
%IEEEtran.cls version 1.7 and later.
% You must have at least 2 lines in the paragraph with the drop letter
% (should never be an issue)
%I wish you the best of success.

%\hfill mds
 
%\hfill January 11, 2007

%\subsection{Subsection Heading Here}
%Subsection text here.

% needed in second column of first page if using \IEEEpubid
%\IEEEpubidadjcol

%\subsubsection{Subsubsection Heading Here}
%Subsubsection text here.


% An example of a floating figure using the graphicx package.
% Note that \label must occur AFTER (or within) \caption.
% For figures, \caption should occur after the \includegraphics.
% Note that IEEEtran v1.7 and later has special internal code that
% is designed to preserve the operation of \label within \caption
% even when the captionsoff option is in effect. However, because
% of issues like this, it may be the safest practice to put all your
% \label just after \caption rather than within \caption{}.
%
% Reminder: the "draftcls" or "draftclsnofoot", not "draft", class
% option should be used if it is desired that the figures are to be
% displayed while in draft mode.
%
%\begin{figure}[!t]
%\centering
%\includegraphics[width=2.5in]{myfigure}
% where an .eps filename suffix will be assumed under latex, 
% and a .pdf suffix will be assumed for pdflatex; or what has been declared
% via \DeclareGraphicsExtensions.
%\caption{Simulation Results}
%\label{fig_sim}
%\end{figure}

% Note that IEEE typically puts floats only at the top, even when this
% results in a large percentage of a column being occupied by floats.


% An example of a double column floating figure using two subfigures.
% (The subfig.sty package must be loaded for this to work.)
% The subfigure \label commands are set within each subfloat command, the
% \label for the overall figure must come after \caption.
% \hfil must be used as a separator to get equal spacing.
% The subfigure.sty package works much the same way, except \subfigure is
% used instead of \subfloat.
%
%\begin{figure*}[!t]
%\centerline{\subfloat[Case I]\includegraphics[width=2.5in]{subfigcase1}%
%\label{fig_first_case}}
%\hfil
%\subfloat[Case II]{\includegraphics[width=2.5in]{subfigcase2}%
%\label{fig_second_case}}}
%\caption{Simulation results}
%\label{fig_sim}
%\end{figure*}
%
% Note that often IEEE papers with subfigures do not employ subfigure
% captions (using the optional argument to \subfloat), but instead will
% reference/describe all of them (a), (b), etc., within the main caption.


% An example of a floating table. Note that, for IEEE style tables, the 
% \caption command should come BEFORE the table. Table text will default to
% \footnotesize as IEEE normally uses this smaller font for tables.
% The \label must come after \caption as always.
%
%\begin{table}[!t]
%% increase table row spacing, adjust to taste
%\renewcommand{\arraystretch}{1.3}
% if using array.sty, it might be a good idea to tweak the value of
% \extrarowheight as needed to properly center the text within the cells
%\caption{An Example of a Table}
%\label{table_example}
%\centering
%% Some packages, such as MDW tools, offer better commands for making tables
%% than the plain LaTeX2e tabular which is used here.
%\begin{tabular}{|c||c|}
%\hline
%One & Two\\
%\hline
%Three & Four\\
%\hline
%\end{tabular}
%\end{table}


% Note that IEEE does not put floats in the very first column - or typically
% anywhere on the first page for that matter. Also, in-text middle ("here")
% positioning is not used. Most IEEE journals use top floats exclusively.
% Note that, LaTeX2e, unlike IEEE journals, places footnotes above bottom
% floats. This can be corrected via the \fnbelowfloat command of the
% stfloats package.

\section{Introduction}
\IEEEPARstart{I}{n this} document we propose a new encryption scheme consisting of a combination of a substitution cipher and an  interconnection network (ICN) to create an encryption scheme. This implementation is reminiscent of an Enigma machine. The basic concept of the system would be to have an input passed through substitution cipher and then sent through the ICN to transpose the input. So when a message is input into the system, the substitution cipher will initially scramble the text and then the ICN will take the ciphertext and transpose the characters in the message. This system will be implemented in hardware. We will code the process using a hardware description language (HDL) to create the cipher and ICN, and then we will test the code on a behavioral as well as physical level using an FPGA board.

\section{Background}
The Julius Caesar cipher is a type of substitution cipher that uses a simple shift to encrypt a plain text. Each letter of the English alphabet is assigned a position value (0-25) that is then shifted by a fixed number of positions, the key value, and substituted back into the text to create the ciphertext. The Vigen\`{e}re cipher is a sequence of 26 different Caesar ciphers with every possible shift value to create a table where each row is it’s own alphabet sequence. A ciphertext is created by using the key value as the row index and the plain text as a column index. The alphabet found at the intersection is what is then used for the ciphertext \cite{modern_caesar_vigenere}. 

Although the Vigen\`{e}re cipher is already a much more complex substitution cipher than the Caesar cipher, we expand on the use of the Vigen\`{e}re cipher by passing the ciphertext through an interconnection network (ICN) to transpose the input and to create our encryption scheme. An interconnection network, commonly referred to as an ICN, is a set of links between nodes that provides a path from one node to another. Interconnection networks are commonly used in computer networks for providing paths between nodes such as memory elements and processing elements. ICNs come in two types: static and dynamic.

Static interconnection networks, also known as direct networks, provide paths from one point to another but the topology is fixed. This means there may be a few paths from one node to another but the overall topology cannot be changed. Also, static ICNs provide point-to-point communication. The traffic, whether it is network data or simple messages, travel through other nodes before reaching the desired destination. A few examples of direct ICNs are the star, ring, mesh, and hypercube network topologies.

Dynamic interconnection networks, also referred to as indirect networks, are quite the opposite. The topology of a dynamic ICN is not fixed and can be changed dynamically. Traffic passes through one or more switches before reaching the destination. A simple example of a dynamic ICN is a crossbar network. Some node connections run horizontally while the others run vertically. Where these lines overlap are switches that can make or break the connection between the two lines. A connection made at any overlap means those two nodes are directly connected and can communicate.

Dynamic ICNs can also have multiple stages, putting these implementations in a class appropriately termed multistage interconnection networks.  Here, the network is composed of the nodes and links as well as configurable switching elements, devices akin to simple switch boxes. The switching elements typically have four connections, two on either side. A switching element can have two states: straight-through or crossover. This means the inputs can either be connected to their respective output or the opposite output. If we have inputs A and B and outputs Y and Z, a straight-through configuration would tie A and B to Y and Z, respectively, with a crossover configuration connecting A and B to Z and Y, respectively. Pictorially, the nodes are placed on either side of the network. Between the nodes lie multiple switching elements with links directly connecting each node to exactly one connection point on one switching element. Each connection point on the switching element is also connected to exactly one point on another switching element (or a node).  The connections between nodes are determined by the configuration of the switching elements between the nodes.

\section{Related Work}
Our interconnection network encryption scheme is similar to some related work on a modernization of the Julius Caesar and Vigen\`{e}re ciphers since we also seek a way of using the Vigen\`{e}re cipher to encrypt plaintext in a more difficult way than the original simple substitution method that can easily be decoded based on recognizable patterns within the ciphertext.

\subsection{A Modern Avatar of Julius Caesar and Vigen\`{e}re Cipher \cite{modern_caesar_vigenere}}
In this section, we study a way that simple substitution ciphers, such as Julius caesar and Vigen\`{e}re ciphers, can be made more difficult to decrypt. They need to be made more difficult since the current power of computers makes these methods very weak and easily decoded. The ciphers are modernized by selecting a prime number and identifying it’s primitive roots and creating all the necessary generators for a chosen primitive root. The generator values become the key values for the ciphers and each positional value of the plain text is added with the corresponding key value and reduced by modulo 26 to create the new position for the cipher text. The cipher text can then be decoded by simply subtracting the key value and then applying the modulo 26 to get the plain text.

An example of how this method works is as follows. Suppose we choose the prime number 101. The primitive roots of 101 are 2, 3, 7, 8, 11, 12, 15, 18, 26, 27, 28, 29, 34, 35, 38, 40, 42, 46, 48, 50, 51, 53, 55, 59, 61, 66, 67, 72, 73, 74, 75, 83, 86, 89, 90, 93, 94, 98, and 99. So if the random base value 52 is selected we compute the generators by using the equation
\begin{equation}
	51 = \bmod 101
\end{equation}
to create the new key values that are used as shift keys in the Caesar cipher. Thus a plaintext of

\begin{center}
	``MAN PROPOSES GOD DISPOSES''\\
	now becomes\\
	``IUS JPSCHCBB JWP KGKWDYSN''\\
\end{center}

This method makes it so even though the letter ``O'' is repeated throughout the plain text, the substitution letter that replaces each ``O'' in the ciphertext is different each time making it more difficult to decode without using the decryption formula
\begin{equation}
	M_i = (C_i-K_i) \bmod 26
\end{equation}
Thus the strength of this algorithm is defined by choosing the prime factor and its relevant primitive root. Even if an attacker has a pair of known cipher-text and its plain text it would be hard for the attacker to discover the key value as it is no longer a simple substitution value. 

\section{Proposed Implementation}
Our proposed design consists of a combination of an interconnection network and the Vigen\`{e}re cipher. The users input will pass through the Vigen\`{e}re cipher before being fed through the interconnection network. This combination implements two methods commonly used in text ciphers: character substitution and transposition.

The interconnection network chosen for our implementation is an Omega network. This ICN will consist of three stages of sixteen switchboxes per stage. Each switchbox will have two inputs and two outputs, each consisting of eight bits, and a one-bit select line. The inputs and outputs are each eight bits to allow one ASCII character to be fed into each data line. In our configuration this will allow a block of sixteen bytes, or sixteen characters, to be transposed at a time. A sketch of our interconnection layout is given in figure \ref{3x8_omega}. On the left you see sixteen data inputs, each numbered with a unique number from 0-16. This signifies the character position in the sixteen-character block. The same scheme is used for the data outputs.

\begin{figure}
	\centering
	\includegraphics[width=\columnwidth]{3StageOmega3x8.pdf}
	\caption{Three stage Omega interconnection network}
	\label{3x8_omega}
\end{figure}

Each switchbox has the capability to change how the data inputs are connected to the data outputs. This is controlled by the select line. A value of 0 on a select line connects the first data input to the first data output, and the second data input to the second data output. A value of 1 on the select line switches these connections; the first data input is passed to the second data output and the second data input is connected to the first data output. It simply switches these connections.

Simply transposing the positions of characters in each block in the same way would not be too difficult to decipher. This is why the switchbox select lines change all the time. The intention is to have the select line driven by the input. Three characters will be chosen from each input so that every block that is fed as input will have a different value for select. This should introduce enough apparent randomization to make deciphering the transposed output difficult. One idea is to take three sequential characters from the input block and feed these to the select line. Then a counter could be used to keep track of which block of three characters was used for selecting, and use the next three characters in the next block. For example, the first sixteen-character block of inputs would use characters 0-2 for the select line. The next block of inputs would use characters 3-5 for the select line. This could keep going and wrap around to the beginning of the block after the last character is used.

A transposition cipher will only get you so far. With a relatively-small block size of 16, it may not take long for the pattern to be discovered and the transpositions to be reversed. This is why the addition of a substitution cipher will be used. By using a substitution cipher before the message is passed through to the interconnection network (or even after it is output from the ICN) we hope to convolute the message enough so finding the pattern in each block is difficult.

The substitution cipher we plan to use will be one based on the Vigen\`{e}re cipher. Just as in the ICN, we plan to use information pulled from the message as a key to the Vigen\`{e}re cipher. We hope to use insight from previous works on improving the Vigen\`{e}re or Caesar cipher to further convolute the output of our cipher. We plan on having an amount of memory reserved in the FPGA dedicated to storing information used in the Vigen\`{e}re cipher. These substitution ciphers typically have a table used to find which character will replace the inputted character. We plan to implement this as a lookup table in some sort of ROM.

To pass messages to the encryptor and receive them back from the decryptor we plan on using a data link between a PC and an FPGA board running the system. A script on the PC can be used to read a data input file and push it over this data link, sixteen characters at a time. After waiting some small amount of time the output can be captured from the encryptor over this same data link then written to a text file.

\section{Evaluation}
While we do not have a full evaluation of our scheme because this is only an interim report we do have some intermediate results. The current implementation written in Verilog includes only the interconnection as described above and depicted in figure \ref{3x8_omega}. Four tests were passed through the interconnection network with varying values for the select lines to visualize the effect this has on the outputs. The results of these preliminary tests are given in table \ref{icn_sample}.

\begin{table}
	\begin{tabular}{lll}
		\textbf{Input} & \textbf{Select} & \textbf{Output}\\
		\hline\\
		ABCDEFGHIJKLMNOP & 000 & AEIMBFJNCGKODHLP\\
		ABCDEFGHIJKLMNOP & ”ABC” & AENIJFBMDPKGCHOL\\
		KLMNOPQRSTUVWXYZ & ”ZYX” & KWOTSPXLRNUYZVMQ\\
		HELLO BIG KITTY! & ”HEL” & HOT GTE BLIYL!KI\\\\
	\end{tabular}
	\caption{Sample tests run through interconnection network}
	\label{icn_sample}		
\end{table}

After looking at the outputs we realized that the first character in each block never changes position. It was realized that this is a result of the fact that ASCII encoding only utilizes seven bits and the eighth bit, fed as input to the first switchbox in each stage, is a static 0. This means that the character fed into the first data input on switchbox 0 travels straight across the top of the interconnection network and does not switch position. A solution to this will need to be created.

Another change that will be incorporated after we came upon this realization is changing the width of the data input bus connected to each switchbox. These data buses are eight bits wide and with ASCII encoding only being seven bits leaves one bit set at a 0 constantly and therefore can be trimmed.

The performance of this setup will be analyzed in the final report. This includes the timing delay of the system (time it takes new input to propagate changes to the output) as well as throughput of the system. We plan on feeding inputs to the system as quickly as it will accept them to put the system through strenuous testing. These figures will of course depend on the hardware it is running on, such as the brand name, model, line, and other FPGA specifications but will give a general idea of the power of this system. These numbers can also be compared to today’s popular encryption schemes, such as PGP, RSA, DES, and others.

\section{Status of Work and Conclusion of Findings}
Our findings from the evaluation conclude that our proposed method does provide a level of encryption using interconnection networks. So far our work shows results without a cipher implementation. However, even without a cipher implementation the interconnection network solidifies our proof of concept in taking our proposed method and making a feasible security solution. It’s important to remember that at this stage of our development that we have not been able to execute any strenuous performance benchmarks or stress testing. Although this would further strengthen our proof of concept it does not negate the progress we have made to proving the feasibility of our solution.

Based on the status of where we are at in our research thus far, our method of implementing an interconnection network encryption scheme has produced results that are what we expected when we put our proposal together. The further work that we hope to implement into our research includes implementing a cipher in addition to our interconnection network scheme to further strengthen the encryption scheme to what we feel are acceptable security levels. Benchmarking our encryption scheme will be measured by how well the encryption scheme is able to encode our test cases to be unrecognizable from the initial string being submitted into the scheme.

In reviewing related works, we can conclude that our proof of concept is very unique in providing an interconnection based encryption scheme using a cipher we were not able to find much work that has been dedicated to this area of research. Furthermore, we can conclude that due to the considerable lack of research touched in this area we can also state that our proof of concept is also a novel concept as well. Based on these findings thus far we find this very encouraging throughout the continuation of this research as well as for any possible future research that this topic can help expand upon.


% if have a single appendix:
%\appendix[Proof of the Zonklar Equations]
% or
%\appendix  % for no appendix heading
% do not use \section anymore after \appendix, only \section*
% is possibly needed

% use appendices with more than one appendix
% then use \section to start each appendix
% you must declare a \section before using any
% \subsection or using \label (\appendices by itself
% starts a section numbered zero.)
%


%\appendices
%\section{Proof of the First Zonklar Equation}
%Appendix one text goes here.

% you can choose not to have a title for an appendix
% if you want by leaving the argument blank
%\section{}
%Appendix two text goes here.


% use section* for acknowledgement
%\section*{Acknowledgment}


%The authors would like to thank...


% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
  \newpage
\fi



% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}

% references section

% can use a bibliography generated by BibTeX as a .bbl file
% BibTeX documentation can be easily obtained at:
% http://www.ctan.org/tex-archive/lio/bibtex/contrib/doc/
% The IEEEtran BibTeX style support page is at:
% http://www.michaelshell.org/tex/ieeetran/bibtex/
%\bibliographystyle{IEEEtran}
% argument is your BibTeX string definitions and bibliography database(s)
%\bibliography{IEEEabrv,../bib/paper}
%
% <OR> manually copy in the resultant .bbl file
% set second argument of \begin to the number of references
% (used to reserve space for the reference number labels box)
%\begin{thebibliography}{1}

%\bibitem{IEEEhowto:kopka}
%H.~Kopka and P.~W. Daly, \emph{A Guide to \LaTeX}, 3rd~ed.\hskip 1em plus
%  0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999.

%\end{thebibliography}

% biography section
% 
% If you have an EPS/PDF photo (graphicx package needed) extra braces are
% needed around the contents of the optional argument to biography to prevent
% the LaTeX parser from getting confused when it sees the complicated
% \includegraphics command within an optional argument. (You could create
% your own custom macro containing the \includegraphics command to make things
% simpler here.)
%\begin{biography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{mshell}}]{Michael Shell}
% or if you just want to reserve a space for a photo:

%\begin{IEEEbiography}{Michael Shell}
%Biography text here.
%\end{IEEEbiography}

% if you will not have a photo at all:
%\begin{IEEEbiographynophoto}{John Doe}
%Biography text here.
%\end{IEEEbiographynophoto}

% insert where needed to balance the two columns on the last page with
% biographies
%\newpage

%\begin{IEEEbiographynophoto}{Jane Doe}
%Biography text here.
%\end{IEEEbiographynophoto}

% You can push biographies down or up by placing
% a \vfill before or after them. The appropriate
% use of \vfill depends on what kind of text is
% on the last page and whether or not the columns
% are being equalized.

%\vfill

% Can be used to pull up biographies so that the bottom of the last one
% is flush with the other column.
%\enlargethispage{-5in}

\printbibliography

% that's all folks
\end{document}


